package main

import "fmt"

func main() {

	// fmt.Println("hhh")  测试空指针
	// test_t1()

	// test_t2()

	// num := 1
	// test_t3(&num)
	// fmt.Println("num = ", num)

	nums := []int{1, 2, 3, 4}
	fmt.Println("n1 = ", nums[0])

	test_t4(&nums)
	fmt.Println("n1 = ", nums[0])

}

func test_t4(nums *[]int) {

	// *nums[0] = 10

}

func test_t3(num *int) {
	*num = 14
}

func test_t2() {

	var nums *int
	t1 := 32
	nums = &t1

	fmt.Printf("nums指针类型是 %T\n", nums)
	fmt.Printf("nums指针的地址是 %p\n", nums)

	t2 := *nums

	fmt.Printf("t2指针类型是 %T\n", t2)
	fmt.Printf("t2指针的值是 %d\n", t2)
}

func test_t1() {

	var t1 *int

	if t1 != nil {
		fmt.Println("t1 地址是 ", t1)
	}

	if t1 == nil {
		fmt.Println("t1 地址是空指针 ")
	}

}
